package Main;

/**
 * Clase que contiene los mensajes a desplegar en pantalla para la interacción con
 * el usuario.
 * @author Jonathan L.
 */
public class Dialogos {
    String error = "ERROR. Ingresar una opción correcta.";
    String eEx="Ingreso incorrecto, inténtelo nueavamente.";
    
    /**
     * Procedimiento para mostrar el objetivo del programa.
     */
    public void bienvenida(){
        System.out.println(""
                +   "-----------------------------------------------------------------------------"
                + "\n|                            RED-SIMULATOR                                  |"
                + "\n| Red Simulator es un programa que permite la simulación de todo            |"
                + "\n| tipo de redes. Esta diseñado para ayudar al usuario a analizar            |"
                + "\n| el funcionamiento de su red, permitiendo a este realizar simulaciones     |"
                + "\n| de transferencia de datos. A través de Red Simulator el usuario           |"
                + "\n| puede identificar si la configuración física de su red es la              |"
                + "\n| mejor o de que otra manera se pudiera realizar.                           |"
                + "\n|                                                                           |"
                + "\n| Para los usuarios menos experimentados en el campo de redes,              |"
                + "\n| Red Simulator provee de un Asistente que acompaño al usuario a            |"
                + "\n| la creación de su propia red. El Asistente de Red Simulator               |"
                + "\n| diseña una red que se adecua a las especificaciones dadas por             |"
                + "\n| el usuario ofreciendo las mejores opciones en rendimiento y costos.       |"
                + "\n| Luego el usuario puede comprobar la eficiencia de la red a través         |"
                + "\n| de simulaciones de transferencia de datos y de estadísticas que Red       |"
                + "\n| Simulator ofrece.                                                         |"
                + "\n|                                                                           |"
                + "\n-----------------------------------------------------------------------------");
    }
    
    /**
     * Procedimiento para desplegar el texto del menú principal.
     */
    public void desplegarMenuP(){
        System.out.print("\n   1. Autogenerar red." 
                + "\n   2. Crear una red."
                + "\n   3. Simulación de transferencia de archivos."
                + "\n   4. Salir.");
    }
    
    /**
     * Procedimiento para desplegar el texto para iniciar la generación de redes.
     */
    public void opcion1Intro(){
        System.out.println("\n****             AUTOGENERAR UNA RED                  ****"
                + " \nEn esta opción es necesario conocer algunos parámetros para"
                + " \nbrindarle la red que mejor se acople a sus características.\n");
    }
    /**
     * Texto para indicar el ingreso del nombre de red.
     */
    public void nombreRed(){
        System.out.println("Ingrese el nombre de la red que creará.");
    }
    
    /**
     * Texto para indicar el ingreso entre una red doméstica-pequeña empresa o una red
     * mediana o corporativa.
     */
    public void opcionTipoRed(){
        System.out.println("¿Usted creará una red doméstica, de pequeña empresa, mediana o corporativa?"
                + "\n1.     Red doméstica o pequeña empresa."
                + "\n2.     Red de mediana empresa o corporativa.");
    }
    
    /**
     * Texto para indicar la cantidad de computadoras a ingresar en caso de haber escogido la
     * primera opción.
     */
    public void opcionCantCompC(){
        System.out.println("¿Cuántas computadoras conectará en la red? Conocer este dato es"
                + " \nimportante para brindar una topología que se acople a sus necesidades."
                + "\n1.     01-08 computadoras."
                + "\n2.     08-16 computadoras.");
    }
    
    /**
     * Texto para indicar la cantidad de computadoras a ingresar en caso de haber escogido la
     * segunda opción.
     */
    public void opcionCantCompG(){
        System.out.println("¿Cuántas computadoras conectará en la red? Conocer este dato es"
                + " \nimportante para brindar una topología que se acople a sus necesidades."
                + "\n1.     16-24 computadoras."
                + "\n2.     24-48 computadoras.");
        
    }
    
    /**
     * Texto para indicar la cantidad de desktops a colocar.
     */
    public void opcionDesktop(){
        System.out.println("Indique la cantidad de computadoras estacionarias (Desktop, workstation"
                + "\nservidor) que utilizará en la red. En dado caso no exista este tipo de computadoras"
                + "\ningrese 0.");
    }
    
    /**
     * Texto para indicar la cantidad de laptops a colocar.
     */
    public void opcionLaptop(){
        System.out.println("Indique la cantidad de computadoras portátiles (Laptop, notebooks, tablets)"
                + "\nque utilizará en la red. En dado caso no exista este tipo de computadoras ingrese 0.");
    }

    /**
     *  Texto para ingresar entre economía u óptimo funcionamiento.
     */
    public void opcionEcono(){
        System.out.println("Indique si prefiere un óptimo funcionamiento de su red o prefiere"
                + "\nla economía con una red estable."
                + "\n1.     Economía."
                + "\n2.     Óptimo funcionamiento.");
    }
    
    /**
     * Submenú opción 2 para que el usuario cree su propia red.
     */
    public void desplegarMenu2(){
        System.out.println("\n1.     Agregar computadora."
                + "\n2.     Agregar componente de red."
                + "\n3.     Crear conexión."
                + "\n4.     Eliminar conexión."
                + "\n5.     Salir");
    }
    
    /**
     * Ingresa el nombre del equipo que desea agregar.
     */
    public void agregarComImp2(){
        System.out.println("Ingrese el nombre del equipo. (Ingrese 0 para salir.)");
    }
    
    /**
     * Lista de opciones para agregar los componentes.
     */
    public void agregarComRedM(){
        System.out.println("Indique el tipo de componente electrónico que desea agregar:"
                + "\n01.     Switch 05 puertos."
                + "\n02.     Switch 08 puertos."
                + "\n03.     Switch 16 puertos."
                + "\n04.     Switch 24 puertos."
                + "\n05.     Switch 48 puertos."
                + "\n06.     Router (Tecnología inalámbrica N)."
                + "\n07.     Access Point."
                + "\n08.     Modem."
                + "\n09.     Impresora"
                + "\n10.     Salir.");
    }
    
    /**
     * Texto para agregar conexión de redes.
     */
    public void agregarCConexion(){
        System.out.println("Escoja el tipo de conexión que desea realizar:"
                + "\n1.   Computadora - Computadora."
                + "\n2.   Computadora/impresora - Componente red.");
    }
    
    /**
     * Texto para ingresar primer equipo.
     */
    public void agregarConexion1(){
        System.out.println("¿Qué equipos desea conectar?\nPrimer equipo:");
    }
    
    /**
     * Texto para ingresar segundo equipo.
     */
    public void agregarConexion2(){
        System.out.println("Segundo equipo:");
    }
    
    /**
     * Texto para ingresar primer equipo a eliminar.
     */
    public void agregarEConexion1(){
        System.out.println("Ingrese el primer equipo a eliminar.");
    }
    
    /**
     * Texto para ingresar segundo equipo a eliminar.
     */
    public void agregarEConexion2(){
        System.out.println("Ingrese el segundo equipo a eliminar.");
    }
    
    
    /**
     * Texto para indicar los equipos ingresados.
     */
    public void velocidadTT(){
        System.out.println("Equipos Ingresados en el Sistema:\n");
    }
    
    /**
     * Texto para ingresar el nombre de la red.
     */
    public void velocidadTR(){
        System.out.println("Ingrese el Nombre de la Red");
    }
    
    /**
     * Mensaje de error para red inexistente.
     */
    public void errorVelocidadTR(){
        System.out.println("ERROR, esa Red no Existe.");
    }
    
    /**
     * Mensaje de error para equipo inexistente.
     */
    public void errorVelocidadT(){
        System.out.println("ERROR, ese Equipo no Existe en la Red.");
    }
    
    /**
     * Texto para escoger las estadísticas de un un equipo o entre dos equipos.
     */
    public void velocidadT(){
        System.out.println("Esta parte de simulaciones funciona para comprobar la velocidad"
                + "de transmisión \nde datos en la red utilizada. Seleccione lo que desea hacer:"
                + "\n1.     Estadísticas de un Solo Equipo."
                + "\n2.     Simulación de Transferencia entre dos Equipos Específicos.");
    }
    
    /**
     * Texto para ingresar el primer equipo.
     */
    public void velocidadT1(){
        System.out.println("Ingrese el Nombre del Primer equipo:");
    }
    
    /**
     * Texto para ingresar el segundo equipo.
     */
    public void velocidadT2(){
        System.out.println("Ingrese el Nombre del Segundo equipo:");
    }
    
    /**
     * Texto para ingresar el equipo.
     */
    public void velocidadT3(){
        System.out.println("Ingrese el Nombre del Equipo");
    }
    
    /**
     * Texto para ingresar el tamaño del archivo.
     */
    public void velocidadT4(){
        System.out.println("Ingrese el Tamaño del Archivo a Simular su Transferencia (en MB).");
    }
    
    /**
     * Texto para despedida del usuario.
     */
    public void salir(){
        System.out.println("Gracias por utilizar RED-SIMULATOR. Hasta pronto.");
    }
    
    
    
    
}
